package com.iplay.java8简明指南;

import com.sun.source.tree.BreakTree;
import org.springframework.util.CollectionUtils;

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * @author dangwu
 * @since 2021/10/13 11:32 上午
 */
public class _2Lambda表达式 {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");
        names.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.compareTo(o1);
            }
        });
        //静态的集合类方法Collections.sort，为比较器的给定列表中的元素排序。你会发现自己经常创建匿名比较器并将它们传递给方法。 Java8支持更短的语法而不总是创建匿名对象， Lambda表达式：
        Collections.sort(names,(String a,String b) -> {
            return b.compareTo(a);
        });
        //正如你可以看到的代码更容易阅读。但它甚至更短：
        Collections.sort(names,(String a,String b) -> b.compareTo(a));
        //一行方法的方法体可以跳过{}和参数类型，使它变得更短：
        Collections.sort(names, (a,b) -> b.compareTo(a));

        names.sort(Comparator.reverseOrder());
        System.out.println(names);
    }
}
